Optical character recognition (OCR) may be utilized to convert image data (e.g., scanned images, photos, etc.) to machine-encoded data. For instance, by applying OCR, a scanned or camera-captured image may be converted into a machine-editable format that can be processed for storing, searching, editing or other purposes.
In order to accurately recognize text with a given OCR implementation, an image typically needs to be of a high quality. The quality of the image may depend on different factors such as the quality of the lens, light intensity variation, relative motion between the camera and text, focus, etc. In this regard, an OCR implementation may detect a majority of text characters in good quality images, such as images having uniform intensity, no relative motion, and good focus. However, even with good quality images, some OCR implementations are unable to accurately detect all text characters. Additional challenges may be present when an OCR implementation attempts to recognize text from lesser quality images, such as images containing variations in lighting, shadows, contrast, glare, blur, etc.
With the introduction of more powerful and capable mobile computing devices (e.g., smartphones, phablets, tablet computing devices, etc.), applications that were traditionally found on desktop computing devices or servers are being implemented for running on mobile computing devices. For a given OCR implementation adapted for use on a mobile computing device, a set of challenges are presented as mobile computing devices are used in different physical environments and have a more limited set of resources that may require a more efficient OCR implementation to optimally run on a given mobile computing device.